/**
 * 设计器状态管理类
 * 负责管理设计器的全局状态
 */
export class DesignerState {
  private state: Record<string, any> = {}

  /**
   * 设置状态
   * @param key 状态键
   * @param value 状态值
   */
  setState<T>(key: string, value: T): void {
    this.state[key] = value
  }

  /**
   * 获取状态
   * @param key 状态键
   * @returns 状态值
   */
  getState<T>(key: string): T | undefined {
    return this.state[key] as T
  }

  /**
   * 批量更新状态
   * @param updates 状态更新对象
   */
  batchUpdate(updates: Record<string, any>): void {
    this.state = { ...this.state, ...updates }
  }

  /**
   * 获取完整状态对象
   * @returns 状态对象的副本
   */
  getFullState(): Record<string, any> {
    return { ...this.state }
  }

  /**
   * 重置状态
   * @param initialState 可选的初始状态
   */
  resetState(initialState: Record<string, any> = {}): void {
    this.state = { ...initialState }
  }
}